1. Field
The technology relates to integrated circuit fabrication, and more particularly to placement, routing, and optimization of an integrated circuit design that obeys rules that specify the relative placement of circuit elements.
2. Description of Related Art
An integrated circuit design flow typically proceeds through the following stages: product idea, EDA software, tapeout, fabrication equipment, packing/assembly, and chips. The EDA software stage includes the steps shown in the following table:
EDA stepWhat HappensSystem DesignDescribe the functionality to implementWhat-if planningHardware/software architecture partitioningLogic Design andWrite VHDL/Verilog for modules in systemFunctionalCheck design for functional accuracy, does the design produceVerificationcorrect outputs?Synthesis andTranslate VHDL/Verilog to netlistDesign for TestOptimize netlist for target technologyDesign and implement tests to permit checking of the finishedchipDesign PlanningConstruct overall floor plan for the chipAnalyze same, timing checks for top-level routingNetlist VerificationCheck netlist for compliance with timing constraints and theVHDL/VerilogPhysicalPlacement (positioning circuit elements) and routing (connectingImplement.circuit elements)Analysis andVerify circuit function at transistor level, allows for what-ifExtractionrefinementPhysicalVarious checking functions: manufact., electrical, lithographic,Verfication (DRC,circuit correctnessLRC, LVS)ResolutionGeometric manipulations to improve manufacturabilityEnhanc. (OPC, PSM,Assists)Mask Data“Tape-out” of data for production of masks for lithographic usePreparationproduce finished chips
With regard to physical implementation technology, methodologies for structured placement offer circuit designers superior power, yield, and/or area for a given logic function. With the advent of manual placement of transistors, designers created arrayed layouts where logic gates were manually placed in a regularized fashion. This methodology has evolved to the point that automation has been applied to the problem. However, regularized placement still suffers from a great deal of manual effort, such as in cell drive strength selection.
Capturing a priori designer knowledge of structured placement requirements in HDL is a nontrivial problem. Even if captured, structured placement requirements are lost during standard cell random placement. Standard cell placers tend to take more localized views during optimization. This results in not just loss of regularity, but also extra buffering, routing, vias, and cell oversizing, compared to a solution which might be obtained following structured placement.
One approach to this problem is to perform cell sizing and optimization of a structured placement manually through homegrown tools. This approach is quite expensive in terms of engineering effort. This approach is also hard to integrate with the rest of the design. Such integration requires multiple iterations, because standard cell placement and optimization changes the placement, sizing, etc. of the surrounding, non-structured logic. Unfortunately, this triggers another iteration, with further manual sizing and optimization efforts through the homegrown tools for the block with structured placement.
Other approaches to this problem are to generate structured placement through synthesis or through a specific tool, and then pass on the result to a placer through a set of special constraints, or as a macro/IP block. The initial structure generated through synthesis or through the special tool is problematic. Because the initial structure is generated prior to placement, the initial structure is formed lacking complete placement knowledge, and thus the initial structure fails to lead to optimal placement as generation. Also if it is passed as a macro/IP block, then place and route tools cannot resize or otherwise optimize the blocks.
Although circuit design parameters such as wiring congestion, wiring alignment, wire crossing, and wire length would be improved by finding the ideal orientation of all cells, this has been a computationally intractable problem. For example, given a trivial circuit design with 10 cells each having 8 possible orientations, there would be 810, or on the order of a billion, possible combinations of orientations among the 10 cells. Given a more commercial circuit design with, say, a million cells each having 8 possible orientations, there would be 81,000,000, or on the order of 1 followed by 900,000 zeros, possible combinations of orientations among the 10 cells. Because the number of possible orientations explodes combinatorially for the number of cells of practical commercial designs, finding the ideal orientation of all cells has remained an intractable problem.
Therefore, it would be desirable to efficiently implement structured placement with circuit design.